table of contents
KEXEC_LOAD(2) | Manuel du programmeur Linux | KEXEC_LOAD(2) |
NOM¶
kexec_load - Charger un nouveau noyau pour une exécution ultérieure
SYNOPSIS¶
#include <linux/kexec.h>
long kexec_load(unsigned long entry, unsigned long
nr_segments,
struct kexec_segment *segments, unsigned long
flags);
Remarque : il n'existe pas de fonction glibc autour de cet appel système ; consultez NOTES.
DESCRIPTION¶
L'appel système kexec_load() charge un nouveau noyau qui peut être exécuté plus tard avec un reboot(2).
Le paramètre flags est un masque dont les bits de poids fort contrôlent l'opération de l'appel. Les valeurs suivantes peuvent être spécifiées dans flags :
- KEXEC_ON_CRASH (depuis Linux 2.6.13)
- Exécuter automatiquement le nouveau noyau en cas de crash système.
- KEXEC_PRESERVE_CONTEXT (depuis Linux 2.6.27)
- Préserver le matériel système et les états logiciels avant d'exécuter le nouveau noyau. Ceci pourrait être utilisé pour la mise en veille prolongée du système. Cet attribut n'est disponible que si le noyau a été configuré avec CONFIG_KEXEC_JUMP, et n'est effectif que si nr_segments est strictement positif.
Les bits de poids faible de flags contiennent l'architecture du noyau qui est en attente d'exécution. Indiquez la constante KEXEC_ARCH_DEFAULT pour utiliser l'architecture actuelle, ou une ou plusieurs (en utilisant l'opérateur OU) des constantes d'architecture suivantes : KEXEC_ARCH_386, KEXEC_ARCH_X86_64, KEXEC_ARCH_PPC, KEXEC_ARCH_PPC64, KEXEC_ARCH_IA_64, KEXEC_ARCH_ARM, KEXEC_ARCH_S390, KEXEC_ARCH_SH, KEXEC_ARCH_MIPS et KEXEC_ARCH_MIPS_LE. L'architecture doit pouvoir être exécutée sur le processeur du système.
Le paramètre entry est l'adresse du point
d'entrée physique dans l'image noyau. Le paramètre
nr_segments est le nombre de segments pointés par le pointeur
segments. Le paramètre segments est un tableau de
kexec_segment structures qui définissent la disposition du
noyau :
struct kexec_segment {
void *buf; /* Tampon dans l'espace utilisateur */
size_t bufsz; /* Taille du tampon */
void *mem; /* Adresse physique du noyau */
size_t memsz; /* Taille de l'adresse physique */ };
L'image noyau définie par segments est copiée depuis le processus appelant dans la mémoire préalablement réservée.
VALEUR RENVOYÉE¶
S'il réussit, kexec_load() renvoie zéro. En cas d'erreur, il renvoie -1 et remplit errno avec la valeur d'erreur.
ERREURS¶
VERSIONS¶
L'appel système kexec_load() est apparu dans Linux 2.6.13.
CONFORMITɶ
Cet appel système est spécifique à Linux.
NOTES¶
Actuellement, il n'y a pas de prise en charge de kexec_load() dans la glibc. Il faut l'appeler avec syscall(2).
Les constantes nécessaires sont définies dans le fichier source du noyau Linux linux/kexec.h, qui n'est actuellement pas exporté par la glibc. Ces constantes doivent donc être définies manuellement.
Cet appel système n'est disponible que si le noyau a été configuré avec CONFIG_KEXEC.
VOIR AUSSI¶
COLOPHON¶
Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».
13 juillet 2012 | Linux |